package com.thinkcube.edutainment.domain.data;

import java.util.ArrayList;
import java.util.List;

import android.os.Parcel;
import android.os.Parcelable;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;

/**
 * Shanuka @Cyberlmj 4:45:15 PM Email: shanuka.gayashan@cyberlmj.com
 */
@JsonIgnoreProperties(ignoreUnknown = true)
public class UserData {

	@JsonProperty("id")
	private String userId;

//	@JsonProperty("mobile_no")
//	private String mobileNumber;

	@JsonProperty("user_name")
	private String userName;

	@JsonProperty("first_name")
	private String firstName;

	@JsonProperty("last_name")
	private String lastName;

	@JsonProperty("email")
	private String email;

	@JsonProperty("profile_image")
	private String peofilePicUrl;

	@JsonProperty("description")
	private String description;

	@JsonProperty("nic")
	private String nic;

	@JsonProperty("gender")
	private String gender;

	@JsonProperty("dateof_birth")
	private String dateOfBirth;

	@JsonProperty("mobile_numbers")
	private List<MobileNumber> mobileNumbers;

	public String getUserId() {
		return this.userId;
	}

	public void setUserId(String userId) {
		this.userId = userId;
	}

	
	public String getUserName() {
		return this.userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public String getFirstName() {
		return this.firstName;
	}

	public void setFirstName(String firstName) {
		this.firstName = firstName;
	}

	public String getLastName() {
		return this.lastName;
	}

	public void setLastName(String lastName) {
		this.lastName = lastName;
	}

	public String getEmail() {
		return this.email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getPeofilePicUrl() {
		return this.peofilePicUrl;
	}

	public void setPeofilePicUrl(String peofilePicUrl) {
		this.peofilePicUrl = peofilePicUrl;
	}

	public String getDescription() {
		return this.description;
	}

	public void setDescription(String description) {
		this.description = description;
	}

	public String getNic() {
		return this.nic;
	}

	public void setNic(String nic) {
		this.nic = nic;
	}

	public String getGender() {
		return this.gender;
	}

	public void setGender(String gender) {
		this.gender = gender;
	}

	public String getDateOfBirth() {
		return this.dateOfBirth;
	}

	public void setDateOfBirth(String dateOfBirth) {
		this.dateOfBirth = dateOfBirth;
	}

	public List<MobileNumber> getMobileNumbers() {
		return this.mobileNumbers;
	}

	public void setMobileNumbers(List<MobileNumber> mobileNumbers) {
		this.mobileNumbers = mobileNumbers;
	}

	protected UserData(Parcel in) {
		userId = in.readString();
		//mobileNumber = in.readString();
		userName = in.readString();
		firstName = in.readString();
		lastName = in.readString();
		email = in.readString();
		peofilePicUrl = in.readString();
		description = in.readString();
		nic = in.readString();
		gender = in.readString();
		dateOfBirth = in.readString();
		mobileNumbers = new ArrayList<MobileNumber>();
		in.readList(mobileNumbers, null);
	}

	public UserData() {
	}

	public int describeContents() {
		return 0;
	}

	public void writeToParcel(Parcel dest, int flags) {
		dest.writeString(userId);
		//dest.writeString(mobileNumber);
		dest.writeString(userName);
		dest.writeString(firstName);
		dest.writeString(lastName);
		dest.writeString(email);
		dest.writeString(peofilePicUrl);
		dest.writeString(description);
		dest.writeString(nic);
		dest.writeString(gender);
		dest.writeString(dateOfBirth);
		dest.writeList(mobileNumbers);
	}

	public static final Parcelable.Creator<UserData> CREATOR = new Parcelable.Creator<UserData>() {
		public UserData createFromParcel(Parcel in) {
			return new UserData(in);
		}

		public UserData[] newArray(int size) {
			return new UserData[size];
		}
	};
}